Pada tutorial ini saya akan menjelaskan step by step membuat animasi di R menggunakan packages gganimate. gganimate adalah ekstensi dari ggplot2 untuk membuat animasi grafik…
library(gapminder)
library(ggplot2)
library(gganimate)
Tahap selanjutnya adalah import data dari gapminder di dalam dataset ini terdapat 1704 observasi dan 6 variabel. Variabel dalam dataset ini adalah:
Country adalah Nama Negara
Continent adalah Nama Benua
Year adalah Tahun dari setiap data
LifeExp adalah Angka harapan Hidup
Pop adalah Populasi setiap negara per tahun
gdpPercap adalah GDP per kapita setiap negara per tahun
Pada bagian ini, kita akan menggunakan dataset gapminder, yang sudah tersedia di dalam paket gapminder. Berikut adalah langkah-langkahnya:
library(gapminder)
data=gapminder
data
## # A tibble: 1,704 × 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan Asia 1952 28.8 8425333 779.
## 2 Afghanistan Asia 1957 30.3 9240934 821.
## 3 Afghanistan Asia 1962 32.0 10267083 853.
## 4 Afghanistan Asia 1967 34.0 11537966 836.
## 5 Afghanistan Asia 1972 36.1 13079460 740.
## 6 Afghanistan Asia 1977 38.4 14880372 786.
## 7 Afghanistan Asia 1982 39.9 12881816 978.
## 8 Afghanistan Asia 1987 40.8 13867957 852.
## 9 Afghanistan Asia 1992 41.7 16317921 649.
## 10 Afghanistan Asia 1997 41.8 22227415 635.
## # ℹ 1,694 more rows
Dari tabel di atas, kita bisa melihat bahwa harapan hidup, populasi, dan PDB per kapita berubah seiring waktu. Nantinya, data ini bisa kita gunakan untuk membuat animasi dengan gganimate guna melihat bagaimana setiap negara berkembang dari waktu ke waktu.
Sebelum kita membuat animasi dengan gganimate, langkah pertama adalah membuat plot statis menggunakan ggplot2. Plot ini akan menjadi dasar animasi yang akan kita buat nanti.
library(gapminder)
library(ggplot2)
gapminder_plot <- ggplot(
gapminder,
aes(x = gdpPercap, y=lifeExp, size = pop, colour = continent, size = pop, frame = year)
) +
geom_point(alpha = 0.6) +
scale_color_viridis_d() +
scale_x_log10() +
labs(x = "GDP per capita", y = "Life expectancy")
## Warning: Duplicated aesthetics after name standardisation: size
gapminder_plot

Plot ini masih bersifat statis. Untuk menambahkan animasi, kita nantinya akan memanfaatkan gganimate dengan menambahkan dimensi waktu berdasarkan variabel year.
Setelah membuat plot statis, langkah berikutnya adalah menambahkan transisi agar grafik menjadi animasi. Kita akan menggunakan fungsi transition_time() dari paket gganimate untuk mengubah visualisasi berdasarkan dimensi waktu (year). Animasi yang dihasilkan akan menunjukkan bagaimana GDP per kapita, harapan hidup, dan populasi berubah dari tahun ke tahun di berbagai negara.
gapminder_plot + transition_time(year) +
labs(title = "Year: {frame_time}")

Setelah menambahkan animasi dasar, kita bisa memperjelas visualisasi dengan memisahkan tiap benua ke dalam subplot terpisah menggunakan fungsi facet_wrap(). Ini akan membantu kita melihat perkembangan masing-masing benua secara lebih detail. Animasi ini akan menampilkan lima subplot (Asia, Eropa, Afrika, Amerika, dan Oseania) yang masing-masing menunjukkan perkembangan GDP per kapita dan harapan hidup dari tahun ke tahun.
library(gganimate)
gapminder_plot + facet_wrap(~continent) +
transition_time(year) +
labs(title = "Year: {frame_time}")
## 6 Membuat Plot Dinamis
Untuk membuat animasi yang lebih menarik, kita bisa menggunakan view_follow() agar tampilan grafik mengikuti pergerakan data secara dinamis. Dengan fixed_y = TRUE, sumbu Y akan tetap, sedangkan sumbu X bisa bergerak mengikuti perubahan data. Dengan view_follow(), tampilan grafik akan lebih interaktif, terutama jika terdapat perubahan signifikan dalam GDP per kapita dari waktu ke waktu.
library(gganimate)
gapminder_plot + transition_time(year) +
labs(title = "Year: {frame_time}") +
view_follow(fixed_y = TRUE)
Agar animasi lebih menarik dan mudah diikuti, kita bisa menambahkan efek bayangan gerak menggunakan fungsi shadow_wake() dari gganimate. Dengan efek ini, titik-titik akan meninggalkan jejak samar yang menunjukkan lintasan pergerakannya. Animasi akan menampilkan titik-titik yang bergerak dari tahun ke tahun dengan efek bayangan yang menunjukkan lintasan pergerakan setiap negara. Ini sangat berguna untuk menunjukkan tren perubahan secara lebih jelas.
library(gganimate)
gapminder_plot + transition_time(year) +
labs(title = "Year: {frame_time}") +
shadow_wake(wake_length = 0.1, alpha = FALSE)
Untuk melihat lintasan pergerakan setiap negara dalam animasi, kita bisa menggunakan shadow_mark() dari gganimate. Fungsi ini akan mempertahankan titik-titik sebelumnya sebagai jejak data, sehingga kita bisa melihat bagaimana suatu negara berkembang dari tahun ke tahun. Animasi ini akan menampilkan pergerakan setiap negara dari tahun ke tahun dengan jejak yang tetap terlihat. Ini memudahkan kita untuk memahami tren perubahan GDP per kapita dan harapan hidup dari waktu ke waktu.
library(gganimate)
gapminder_plot + transition_time(year) +
labs(title = "Year: {frame_time}") +
shadow_mark(alpha = 0.3, size = 0.5)
Dengan menggunakan gganimate, kita bisa mengubah grafik statis menjadi animasi yang lebih interaktif dan informatif. Dalam eksplorasi ini, kita telah:
✅ Membuat visualisasi dasar dengan ggplot2
✅ Menambahkan animasi waktu menggunakan transition_time()
✅ Membuat subplot per benua dengan facet_wrap()
✅ Menampilkan pergerakan dinamis dengan view_follow()
✅ Menambahkan efek bayangan menggunakan shadow_wake()
✅ Menampilkan jejak perubahan data dengan shadow_mark()
Hasilnya? Tren perkembangan GDP per kapita, harapan hidup, dan populasi dari waktu ke waktu bisa lebih mudah dipahami!
Dengan sedikit kreativitas, kita bisa membuat animasi yang lebih menarik dan eksploratif untuk berbagai jenis data. gganimate bukan hanya alat visualisasi, tetapi juga bisa menjadi media storytelling yang powerful dalam data science!. Tertarik mencoba animasi lain? Eksplorasi lebih lanjut dengan gganimate dan buat visualisasi yang semakin keren!